% fname: routing_dyad_0_6__sel_bufferlevel__topology_8x8__.m
% ./noxim -routing dyad 0.6 -sel bufferlevel -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 2 -traffic transpose1 

function [max_pir, max_throughput, min_delay] = routing_dyad_0_6__sel_bufferlevel__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
            0.008        27.3852       0.065166            259           4169          33365
            0.008        25.3617       0.064041            237           4100          32789
            0.008        24.2848      0.0637734            162           4083          32652
            0.008        24.2097      0.0635977            159           4068          32562
            0.008        26.0708      0.0663613            250           4249          33977
            0.008        25.6813      0.0655801            158           4198          33577
            0.008        25.1646      0.0653887            154           4186          33479
            0.008        24.5854      0.0629453            165           4030          32228
            0.008         24.976      0.0638828            162           4086          32708
            0.008         25.125      0.0651309            222           4167          33347
            0.008        25.1154       0.064209            232           4108          32875
            0.008        24.4423      0.0637891            198           4083          32660
            0.008        24.3627      0.0641465            179           4103          32843
            0.008        25.4738      0.0643945            202           4122          32970
            0.008        24.3671      0.0629512            196           4032          32231
            0.008        25.2685      0.0640117            201           4101          32774
            0.008        24.3499      0.0633535            160           4058          32437
            0.008        25.1903      0.0652754            167           4178          33421
            0.008        24.7776      0.0655781            195           4196          33576
            0.008        24.0737      0.0646348            160           4136          33093
           0.0088        28.1261      0.0712305            255           4560          36470
           0.0088        28.0781      0.0704082            318           4509          36049
           0.0088        27.0876      0.0699453            205           4475          35812
           0.0088        28.0256      0.0689102            234           4413          35282
           0.0088        29.9298      0.0712441            286           4559          36477
           0.0088        27.8786      0.0710234            307           4548          36364
           0.0088        29.5954      0.0721543            264           4617          36943
           0.0088        29.5012      0.0709121            315           4541          36307
           0.0088        26.7043      0.0694902            316           4447          35579
           0.0088        27.8351      0.0711211            201           4555          36414
           0.0088        27.4461      0.0701875            246           4490          35936
           0.0088        27.4529      0.0708145            205           4535          36257
           0.0088        28.7096      0.0712676            269           4560          36489
           0.0088        27.5207      0.0712754            200           4559          36493
           0.0088        27.3824       0.070582            219           4519          36138
           0.0088        26.2996      0.0685762            224           4393          35111
           0.0088        27.2134      0.0713711            214           4569          36542
           0.0088        27.0013      0.0694863            264           4445          35577
           0.0088        28.1796      0.0717559            278           4594          36739
           0.0088        29.0708      0.0710977            293           4550          36402
           0.0096        29.9574      0.0762305            231           4883          39030
           0.0096        30.5444      0.0774746            298           4961          39667
           0.0096         30.601      0.0786289            237           5030          40258
           0.0096         30.355      0.0754648            305           4828          38638
           0.0096        28.3485      0.0763359            256           4887          39084
           0.0096        31.6689      0.0774902            275           4962          39675
           0.0096        30.7052      0.0760215            437           4865          38923
           0.0096        31.6167      0.0777559            387           4975          39811
           0.0096         29.934      0.0779023            214           4987          39886
           0.0096        30.0485       0.077582            268           4964          39722
           0.0096        31.1687      0.0772031            252           4938          39528
           0.0096        28.8892      0.0767715            224           4910          39307
           0.0096        30.7287      0.0759062            298           4854          38864
           0.0096         30.129      0.0769355            280           4923          39391
           0.0096        30.0795      0.0772383            254           4943          39546
           0.0096        30.1668      0.0754727            333           4831          38642
           0.0096        30.9159      0.0762715            330           4885          39051
           0.0096        31.2465      0.0774492            329           4957          39654
           0.0096        31.1569      0.0776328            244           4970          39748
           0.0096        31.3993      0.0774316            416           4959          39645
           0.0104        36.5862      0.0842148            356           5389          43118
           0.0104        31.5463      0.0800605            264           5124          40991
           0.0104        34.5706      0.0819199            318           5240          41943
           0.0104        35.6237      0.0822676            312           5264          42121
           0.0104        35.0328      0.0833008            330           5331          42650
           0.0104        36.5799      0.0848691            451           5434          43453
           0.0104        33.0048      0.0821582            345           5258          42065
           0.0104        42.7572      0.0837402            621           5359          42875
           0.0104         35.108      0.0829551            335           5308          42473
           0.0104        33.3734       0.082248            293           5262          42111
           0.0104        32.9438      0.0825957            287           5284          42289
           0.0104        34.7874       0.082709            322           5292          42347
           0.0104        34.8572      0.0829707            433           5309          42481
           0.0104        34.5111      0.0839102            350           5369          42962
           0.0104        35.3835      0.0832832            444           5327          42641
           0.0104        32.4808       0.081707            305           5227          41834
           0.0104        38.8737      0.0836211            508           5352          42814
           0.0104         32.405      0.0823359            417           5271          42156
           0.0104        32.6467       0.082373            317           5271          42175
           0.0104        34.1563      0.0835059            330           5343          42755
           0.0112        39.7561      0.0888242            500           5686          45478
           0.0112        48.0576      0.0911133            738           5834          46650
           0.0112        35.4661      0.0876797            280           5613          44892
           0.0112        39.2347      0.0890293            465           5700          45583
           0.0112        41.8183      0.0905078            424           5795          46340
           0.0112        40.4692      0.0915547            429           5861          46876
           0.0112        39.1473      0.0892969            365           5711          45720
           0.0112         38.498      0.0863223            445           5524          44197
           0.0112         42.283      0.0887363            662           5678          45433
           0.0112        41.6278      0.0894687            350           5728          45808
           0.0112        41.7849      0.0900137            557           5764          46087
           0.0112        40.0309      0.0900098            634           5760          46085
           0.0112        39.4865      0.0896445            373           5737          45898
           0.0112        43.4888      0.0902871            399           5782          46227
           0.0112        37.4423      0.0878945            325           5627          45002
           0.0112          44.34      0.0906055            775           5800          46390
           0.0112         40.304      0.0910254            461           5828          46605
           0.0112        40.5044      0.0874648            491           5599          44782
           0.0112         40.127      0.0904082            378           5787          46289
           0.0112         41.349      0.0904375            505           5791          46304
            0.012        48.6681      0.0963594            742           6167          49336
            0.012        84.1243      0.0961094           2432           6153          49208
            0.012        78.7524      0.0969941           2043           6208          49661
            0.012        48.9151      0.0961016            591           6152          49204
            0.012        59.6667      0.0947461            788           6063          48510
            0.012        92.0622      0.0975312           2906           6241          49936
            0.012        48.5943      0.0962676            534           6157          49289
            0.012        45.0906      0.0945352            402           6048          48402
            0.012        50.0742      0.0960566            609           6146          49181
            0.012         57.224       0.096791            952           6197          49557
            0.012        49.2563       0.097293            558           6227          49814
            0.012        91.3269      0.0965312           1937           6179          49424
            0.012        59.2243      0.0960625            734           6149          49184
            0.012        57.0278      0.0966836           1179           6191          49502
            0.012         56.988      0.0964316            747           6173          49373
            0.012        59.5857      0.0968105            734           6191          49567
            0.012        58.5942      0.0960234            893           6144          49164
            0.012        70.2296      0.0957012           1269           6124          48999
            0.012        60.7549      0.0966602            730           6182          49490
            0.012        49.9634      0.0960605            488           6151          49183
           0.0128         117.41        0.10265           1688           6570          52557
           0.0128        115.518       0.101883           2089           6521          52164
           0.0128        97.5595       0.100973           2145           6461          51698
           0.0128        96.6474       0.101908           1730           6520          52177
           0.0128        139.362      0.0997949           3618           6389          51095
           0.0128         106.82        0.10165           3043           6506          52045
           0.0128        148.237       0.100971           2504           6464          51697
           0.0128        90.0685      0.0996992           1901           6382          51046
           0.0128        103.838       0.101404           1767           6489          51919
           0.0128        120.698       0.103322           3955           6611          52901
           0.0128        107.794       0.101988           2190           6526          52218
           0.0128        128.428        0.10057           2396           6439          51492
           0.0128        80.7959       0.102127           1146           6537          52289
           0.0128        112.423       0.102262           1549           6548          52358
           0.0128        76.7687       0.102623           1188           6566          52543
           0.0128        87.3533       0.102018           1329           6530          52233
           0.0128        103.272       0.102643           2213           6574          52553
           0.0128         115.08        0.10042           2254           6427          51415
           0.0128        118.649       0.102783           2166           6579          52625
           0.0128        81.2665       0.102596           3801           6566          52529
           0.0136        204.861       0.105791           3741           6768          54165
           0.0136        156.153       0.105738           3319           6767          54138
           0.0136        191.074       0.106555           3457           6818          54556
           0.0136        160.889       0.106555           2492           6821          54556
           0.0136         207.24       0.105504           3318           6752          54018
           0.0136        164.405       0.106498           3519           6815          54527
           0.0136        181.996       0.106361           2967           6809          54457
           0.0136        200.567       0.106576           4516           6818          54567
           0.0136        205.431       0.108172           3330           6924          55384
           0.0136        173.661       0.102799           5246           6581          52633
           0.0136        295.848       0.105412           5319           6748          53971
           0.0136        219.945       0.105572           3380           6756          54053
           0.0136        188.953       0.106266           3758           6799          54408
           0.0136        147.758       0.105084           2295           6724          53803
           0.0136        192.869       0.104082           3564           6659          53290
           0.0136        212.114       0.104596           4220           6695          53553
           0.0136        209.465       0.104002           4456           6658          53249
           0.0136        159.812       0.106115           4266           6795          54331
           0.0136        227.264       0.106494           3879           6818          54525
           0.0136        207.049       0.104031           3986           6657          53264
           0.0144        293.886       0.109596           4320           7010          56113
           0.0144        291.477       0.109459           4551           7004          56043
           0.0144        283.992       0.109307           6402           6996          55965
           0.0144        338.439        0.11273           4245           7214          57718
           0.0144        251.152       0.111484           3780           7137          57080
           0.0144        295.151       0.110146           4308           7051          56395
           0.0144        323.874       0.110912           5271           7099          56787
           0.0144        258.855       0.108393           4192           6937          55497
           0.0144        234.779       0.107176           4371           6857          54874
           0.0144        286.693        0.10991           5355           7036          56274
           0.0144        271.959       0.110514           4220           7075          56583
           0.0144        300.955       0.109484           5338           7008          56056
           0.0144        330.838       0.107846           4973           6902          55217
           0.0144        329.348       0.109236           6680           6992          55929
           0.0144        298.049       0.109924           5208           7034          56281
           0.0144        246.469       0.109639           4383           7018          56135
           0.0144        274.198       0.110445           4580           7067          56548
           0.0144        267.801       0.110135           5809           7051          56389
           0.0144        245.731       0.109793           4421           7028          56214
           0.0144        250.676       0.109117           5224           6982          55868
           0.0152        354.593       0.112309           4516           7188          57502
           0.0152        344.713       0.113303           6141           7253          58011
           0.0152        360.606       0.114404           6608           7323          58575
           0.0152        388.112       0.111602           5158           7145          57140
           0.0152        347.162       0.112875           5388           7224          57792
           0.0152        341.679       0.112389           5594           7196          57543
           0.0152        354.929       0.113619           5404           7271          58173
           0.0152        369.853       0.113594           5952           7269          58160
           0.0152        354.786       0.112504           5940           7201          57602
           0.0152        400.916       0.111611           6437           7144          57145
           0.0152        354.504       0.112969           6136           7224          57840
           0.0152        379.907       0.111844           5064           7159          57264
           0.0152        412.354       0.110125           7628           7050          56384
           0.0152        382.736       0.112453           6246           7200          57576
           0.0152        350.705       0.113437           6137           7256          58080
           0.0152        310.668       0.114619           5179           7333          58685
           0.0152        368.294       0.112594           6549           7205          57648
           0.0152        355.234       0.113703           6064           7277          58216
           0.0152        336.786       0.112006           5493           7168          57347
           0.0152        394.594        0.11218           6018           7182          57436
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
